package com.gtq.uhome.mapper;

import com.gtq.uhome.vo.*;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface OrderMapper {
    /**
     * 删除订单
     * @param auditManagement
     * @return
     */
    Integer deleteOrder(AuditManagement auditManagement);

    /**
     * 更新待审核列表审核状态信息
     * @param deliveryDetailsVo
     * @return
     */
    Integer update(DeliveryDetailsVo deliveryDetailsVo);

    /**
     * 查询所有用户订单(以物流单分类)
     * @return
     */
    List<AllOrderInfor> findAllOrderListByOrderLg();

    /**
     *  以物流单号分组,查看当前物流单的用户商品列表
     * @param logisticsId
     * @return
     */
    List<OrderOneToThree> OneToThree(@Param("logisticsId") String logisticsId);


    /**
     * 查询某些订单信息
     * @param keyWords
     * @param deliveryTimestart
     * @param deliveryTimeend
     * @param checkStatus
     * @param siteName
     * @return
     */
    List<AllOrderInfor> findSomeOrderList(@Param("keyWords") String keyWords,
                                          @Param("deliveryTimestart") String deliveryTimestart,
                                          @Param("deliveryTimeend")  String deliveryTimeend,@Param("checkStatus")
                                                  String checkStatus,@Param("siteName") String siteName,@Param("singCode") String singCode,@Param("agingCode") String agingCode);

    OrderInfor findOneOrderListByOrderLg(String logisticsId);


    /**
     *  删除一条订单的运单
     * @param lgId
     * @return
     */
    Integer delteOneOrderbyLg(@Param("lgId")String lgId);

    /**
     * 在成功删除了一条运单的时候判断该订单是否还有其他运单
     * @param id
     * @return
     */
    Integer findlg(@Param("id") String id);

    /**
     *  在没有运单的时候删除运单
     * @param id
     * @return
     */
    Integer delOrder(@Param("id") String id);

    /**
     *  根据站点查询全部订单
     * @param siteId
     * @return
     */
    List<AllOrderInfor> findAllOrderListByOrderLg(@Param("siteId") Integer siteId);

    /**
     * 搜索用户待审核订单
     * @param userId
     * @return
     */
    List<UserOrderCheckVo> findUserCheckOderList (@Param("userId") Integer userId);
}